home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / util / BuddhistCalendar.class (.txt) next >
Encoding:
Java Class File  |  2006-11-29  |  3.0 KB  |  177 lines

  1. package sun.util;
  2.  
  3. import java.util.GregorianCalendar;
  4. import java.util.HashMap;
  5. import java.util.Locale;
  6. import java.util.Map;
  7. import java.util.ResourceBundle;
  8. import java.util.TimeZone;
  9. import sun.util.resources.LocaleData;
  10.  
  11. public class BuddhistCalendar extends GregorianCalendar {
  12.    private static final long serialVersionUID = -8527488697350388578L;
  13.    private static final int buddhistOffset = 543;
  14.    private transient int yearOffset = 543;
  15.  
  16.    public BuddhistCalendar() {
  17.    }
  18.  
  19.    public BuddhistCalendar(TimeZone var1) {
  20.       super(var1);
  21.    }
  22.  
  23.    public BuddhistCalendar(Locale var1) {
  24.       super(var1);
  25.    }
  26.  
  27.    public BuddhistCalendar(TimeZone var1, Locale var2) {
  28.       super(var1, var2);
  29.    }
  30.  
  31.    public boolean equals(Object var1) {
  32.       return var1 instanceof BuddhistCalendar && super.equals(var1);
  33.    }
  34.  
  35.    public int hashCode() {
  36.       return super.hashCode() ^ 543;
  37.    }
  38.  
  39.    public int get(int var1) {
  40.       return var1 == 1 ? super.get(var1) + this.yearOffset : super.get(var1);
  41.    }
  42.  
  43.    public void set(int var1, int var2) {
  44.       if (var1 == 1) {
  45.          super.set(var1, var2 - this.yearOffset);
  46.       } else {
  47.          super.set(var1, var2);
  48.       }
  49.  
  50.    }
  51.  
  52.    public void add(int var1, int var2) {
  53.       int var3 = this.yearOffset;
  54.       this.yearOffset = 0;
  55.  
  56.       try {
  57.          super.add(var1, var2);
  58.       } finally {
  59.          this.yearOffset = var3;
  60.       }
  61.  
  62.    }
  63.  
  64.    public void roll(int var1, int var2) {
  65.       int var3 = this.yearOffset;
  66.       this.yearOffset = 0;
  67.  
  68.       try {
  69.          super.roll(var1, var2);
  70.       } finally {
  71.          this.yearOffset = var3;
  72.       }
  73.  
  74.    }
  75.  
  76.    public String getDisplayName(int var1, int var2, Locale var3) {
  77.       if (var1 != 0) {
  78.          return super.getDisplayName(var1, var2, var3);
  79.       } else if (var1 >= 0 && var1 < this.fields.length && var2 >= 1 && var2 <= 2) {
  80.          if (var3 == null) {
  81.             throw new NullPointerException();
  82.          } else {
  83.             ResourceBundle var4 = LocaleData.getDateFormatData(var3);
  84.             String[] var5 = var4.getStringArray(this.getKey(var2));
  85.             return var5[this.get(var1)];
  86.          }
  87.       } else {
  88.          throw new IllegalArgumentException();
  89.       }
  90.    }
  91.  
  92.    public Map<String, Integer> getDisplayNames(int var1, int var2, Locale var3) {
  93.       if (var1 != 0) {
  94.          return super.getDisplayNames(var1, var2, var3);
  95.       } else if (var1 >= 0 && var1 < this.fields.length && var2 >= 0 && var2 <= 2) {
  96.          if (var3 == null) {
  97.             throw new NullPointerException();
  98.          } else if (var2 == 0) {
  99.             Map var4 = this.getDisplayNamesImpl(var1, 1, var3);
  100.             Map var5 = this.getDisplayNamesImpl(var1, 2, var3);
  101.             if (var4 == null) {
  102.                return var5;
  103.             } else {
  104.                if (var5 != null) {
  105.                   var4.putAll(var5);
  106.                }
  107.  
  108.                return var4;
  109.             }
  110.          } else {
  111.             return this.getDisplayNamesImpl(var1, var2, var3);
  112.          }
  113.       } else {
  114.          throw new IllegalArgumentException();
  115.       }
  116.    }
  117.  
  118.    private Map<String, Integer> getDisplayNamesImpl(int var1, int var2, Locale var3) {
  119.       ResourceBundle var4 = LocaleData.getDateFormatData(var3);
  120.       String[] var5 = var4.getStringArray(this.getKey(var2));
  121.       HashMap var6 = new HashMap(4);
  122.  
  123.       for(int var7 = 0; var7 < var5.length; ++var7) {
  124.          var6.put(var5[var7], var7);
  125.       }
  126.  
  127.       return var6;
  128.    }
  129.  
  130.    private String getKey(int var1) {
  131.       StringBuilder var2 = new StringBuilder();
  132.       var2.append(BuddhistCalendar.class.getName());
  133.       if (var1 == 1) {
  134.          var2.append(".short");
  135.       }
  136.  
  137.       var2.append(".Eras");
  138.       return var2.toString();
  139.    }
  140.  
  141.    public int getActualMaximum(int var1) {
  142.       int var2 = this.yearOffset;
  143.       this.yearOffset = 0;
  144.  
  145.       int var3;
  146.       try {
  147.          var3 = super.getActualMaximum(var1);
  148.       } finally {
  149.          this.yearOffset = var2;
  150.       }
  151.  
  152.       return var3;
  153.    }
  154.  
  155.    public String toString() {
  156.       String var1 = super.toString();
  157.       if (!this.isSet(1)) {
  158.          return var1;
  159.       } else {
  160.          int var3 = var1.indexOf("YEAR=");
  161.          if (var3 == -1) {
  162.             return var1;
  163.          } else {
  164.             var3 += "YEAR=".length();
  165.             StringBuilder var4 = new StringBuilder(var1.substring(0, var3));
  166.  
  167.             while(Character.isDigit(var1.charAt(var3++))) {
  168.             }
  169.  
  170.             int var5 = this.internalGet(1) + 543;
  171.             var4.append(var5).append(var1.substring(var3 - 1));
  172.             return var4.toString();
  173.          }
  174.       }
  175.    }
  176. }
  177.